package com.eshop.modules.product.domain;

import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.eshop.domain.BaseDomain;

public class StoreProductRelation extends BaseDomain
{
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("用户ID")
    private Long uid;
    @ApiModelProperty("商品ID")
    private Long productId;
    @ApiModelProperty("类型(收藏(collect）、点赞(like)、足迹(foot))")
    private String type;
    @ApiModelProperty("某种类型的商品(普通商品、秒杀商品)")
    private String category;
    
    public static StoreProductRelationBuilder builder() {
        return new StoreProductRelationBuilder();
    }
    
    public Long getId() {
        return this.id;
    }
    
    public Long getUid() {
        return this.uid;
    }
    
    public Long getProductId() {
        return this.productId;
    }
    
    public String getType() {
        return this.type;
    }
    
    public String getCategory() {
        return this.category;
    }
    
    public void setId(final Long id) {
        this.id = id;
    }
    
    public void setUid(final Long uid) {
        this.uid = uid;
    }
    
    public void setProductId(final Long productId) {
        this.productId = productId;
    }
    
    public void setType(final String type) {
        this.type = type;
    }
    
    public void setCategory(final String category) {
        this.category = category;
    }
    
    public StoreProductRelation(final Long id, final Long uid, final Long productId, final String type, final String category) {
        this.id = id;
        this.uid = uid;
        this.productId = productId;
        this.type = type;
        this.category = category;
    }
    
    public StoreProductRelation() {
    }
    
    public static class StoreProductRelationBuilder
    {
        private Long id;
        private Long uid;
        private Long productId;
        private String type;
        private String category;
        
        StoreProductRelationBuilder() {
        }
        
        public StoreProductRelationBuilder id(final Long id) {
            this.id = id;
            return this;
        }
        
        public StoreProductRelationBuilder uid(final Long uid) {
            this.uid = uid;
            return this;
        }
        
        public StoreProductRelationBuilder productId(final Long productId) {
            this.productId = productId;
            return this;
        }
        
        public StoreProductRelationBuilder type(final String type) {
            this.type = type;
            return this;
        }
        
        public StoreProductRelationBuilder category(final String category) {
            this.category = category;
            return this;
        }
        
        public StoreProductRelation build() {
            return new StoreProductRelation(this.id, this.uid, this.productId, this.type, this.category);
        }
        
        @Override
        public String toString() {
            return "StoreProductRelation.StoreProductRelationBuilder(id=" + this.id + ", uid=" + this.uid + ", productId=" + this.productId + ", type=" + this.type + ", category=" + this.category + ")";
        }
    }
}
